home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / scheme / pcscheme / ti / pcscm3_3 / pkxli.arc / SOUND.DOC < prev    next >
Encoding:
Text File  |  1988-06-07  |  4.4 KB  |  118 lines

  1. "sound"
  2.  
  3. "sound" activates the speaker.
  4.  
  5.  
  6. Format:        (XCALL "sound" <select> <freq> <duration> <freq-1> <freq-2>)
  7.  
  8. Parameters:    <select> is a number in the range 0..4 which determines
  9.         which sound command to execute.
  10.  
  11.         <freq> is the frequency in Hz.  Very low and very high
  12.         frequencies are mapped to 20 Hz.  This number is used for
  13.         timer control of the speaker.
  14.  
  15.         <duration> is a number in the range 1..65535.
  16.         Zero is mapped to 65536.  The speaker is activated for 
  17.         this many "ticks".
  18.  
  19.         <freq-1>, <freq-2> are numbers in the range 1..65535.
  20.         Zero is mapped to 65536.  These numbers are used
  21.         for manual control of the speaker, and the sum 
  22.         <freq-1> + <freq-2> determines the size of 1 "tick".
  23.         The length of a tick is processor-speed dependent.
  24.  
  25.         All arguments are optional.  Once given, they remain in effect
  26.         until explicitly changed.  Also, the meaning of some arguments
  27.         may vary depending on <select>.
  28.  
  29. Explanation:    The PC has limited sound generation capabilities, lacking,
  30.         among other things, volume control, multiple voices, and
  31.         envelope control.  The only control is over the pitch and
  32.         duration of a sound.  However, the PC provides two different
  33.         ways for generating pitches, which can be combined for a
  34.         sort of timbre control, and even volume can be simulated.
  35.  
  36.         The first approach uses the timer chip.  After being set
  37.         to a given frequency, the timer can run the speaker
  38.         independently of the processor.  Since processor speed
  39.         does not affect the timer, a given set of parameters run on
  40.         machines of different speeds will yield identical sounds.
  41.  
  42.         The second approach is to control the speaker yourself.
  43.         This amounts to you pushing the speaker cone in and out
  44.         at the appropriate rate.  Since the rate at which you can
  45.         do this depends on the processor speed, a given set of
  46.         parameters run on machines of different speeds will give
  47.         different sounds.
  48.  
  49.         The two approaches can be combined, where you drive the
  50.         speaker at one rate while the timer drives it at a
  51.         different rate.  This adds timbre to the sound, making it
  52.         more interesting.
  53.  
  54.         <select> = 0 selects overall sound control.  <freq> = 0
  55.         disables sound commands and <> 0 enables them.  The speaker
  56.         is turned off.  Sound is initially enabled.
  57.  
  58.         <select> = 1 selects timer control.  The <freq> is the
  59.         frequency in Hz of the sound to be generated.  The sound
  60.         lasts for <duration> ticks, except for <duration> = 0,
  61.         which leaves sound running while control returns to Scheme.
  62.  
  63.         <select> = 2 selects manual control.  <freq> is ignored--any
  64.         number will do as a placeholder.  The sum <freq-1> + <freq-2>
  65.         determines the pitch through the use of delay loops.  The
  66.         speaker is off for a delay count of <freq-1> and on for
  67.         <freq-2>.  Different sums adding up to the same number 
  68.         give various timbres to the basic pitch.  Larger sums decrease
  69.         the pitch--doubling the sum will drop the sound one octave,
  70.         for example.  The sound lasts for <duration> ticks before
  71.         returning to Scheme.
  72.  
  73.         <select> = 3 combines 1 and 2.  The timer superimposes its
  74.         <freq> value on top of the manual control.  Otherwise,
  75.         operation is the same as selection 2.
  76.  
  77.  
  78.  
  79.  
  80.         <select> = 4 turns off the speaker.  If <freq> = 0, the
  81.         speaker is turned off and control returns immediately to
  82.         Scheme.  If <freq> <> 0, control returns only after 
  83.         <duration> ticks.
  84.  
  85. Examples:    (XCALL "sound" 0 1)
  86.             ;enable sound commands if they were disabled
  87.  
  88.         (XCALL "sound" 1 440 2000 200 200)
  89.             ;on any computer, gives the "A" (= 440 Hz) 
  90.             ;above middle C.  The last 3 parameters are duration
  91.             ;values--increasing them give longer durations.
  92.             ;The sum 200+200 determines the length of 1 tick
  93.             ;and the sound lasts for 2000 ticks.
  94.  
  95.         (XCALL "sound" 1 256)
  96.             ;an example of defaulting--the frequency changes
  97.             ;to middle C (= 256 Hz) and other parameters are
  98.             ;unchanged
  99.  
  100.         (XCALL "sound" 2 256 200 1075 1075)
  101.             ;on a TI Business-Pro (turbo mode), gives roughly the
  102.             ;same "A" above middle C.  The sum 1075+1075 determines
  103.             ;the pitch and the sound lasts for 200 ticks.  
  104.             ;The "256" argument is ignored.
  105.  
  106.         (XCALL "sound" 3 256 200 1075 1075)
  107.             ;sounds similar to previous example except now a
  108.             ;256 Hz sound (middle C) is superimposed
  109.  
  110.         (XCALL "sound")
  111.             ;repeats the previous sound
  112.  
  113.         (XCALL "sound" 1 440 0)
  114.             ;sound "A" and return to Scheme, leaving the sound on
  115.  
  116.         (XCALL "sound" 4 0)
  117.             ;turn off the sound
  118.